package model;
import java.util.ArrayList;
import java.util.Date;

import view.TarifaDTO;
import view.TemporadaDTO;


public class Tarifa {
	private Integer id;
	private String codigo;
	private String nombre;
	private Hotel hotel;
	private String moneda;
	private String pension;
	private Boolean activa;
	private Date vigenciaDesde;
	private Date vigenciaHasta;
	private Proveedor proveedor;
	private ArrayList<Temporada> temporadas;
	
	public Tarifa(int id, String codigo, String nombre, 
			Hotel hotel, String moneda, String pension, Boolean activa, 
			Date vigenciaDesde, Date vigenciaHasta, Proveedor proveedor, 
			ArrayList<Temporada> temporadas) {
		this.id = id;
		this.codigo = codigo;
		this.nombre = nombre;
		this.hotel = hotel;
		this.moneda = moneda;
		this.pension = pension;
		this.activa = activa;
		this.vigenciaDesde = vigenciaDesde;
		this.vigenciaHasta = vigenciaHasta;
		this.proveedor = proveedor;
		this.temporadas = temporadas;
	}

	public Tarifa(TarifaDTO tar) {
		this.id = tar.getId();
		this.codigo = tar.getCodigo();
		this.nombre = tar.getNombre();
		this.hotel = new Hotel(tar.getHotel());
		this.moneda = tar.getMoneda();
		this.pension = tar.getPension();
		this.activa = tar.getActiva();
		this.vigenciaDesde = tar.getVigenciaDesde();
		this.vigenciaHasta = tar.getVigenciaHasta();
		this.proveedor = new Proveedor(tar.getProveedor());
		this.temporadas = new ArrayList<Temporada>();
		for(TemporadaDTO temp : tar.getTemporadas())
		{
			this.temporadas.add(new Temporada(temp));	
		}
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Hotel getHotel() {
		return hotel;
	}

	public void setHotel(Hotel hotel) {
		this.hotel = hotel;
	}

	public String getMoneda() {
		return moneda;
	}

	public void setMoneda(String moneda) {
		this.moneda = moneda;
	}

	public String getPension() {
		return pension;
	}

	public void setPension(String pension) {
		this.pension = pension;
	}

	public Boolean getActiva() {
		return activa;
	}

	public void setActiva(Boolean activa) {
		this.activa = activa;
	}

	public Date getVigenciaDesde() {
		return vigenciaDesde;
	}

	public void setVigenciaDesde(Date vigenciaDesde) {
		this.vigenciaDesde = vigenciaDesde;
	}

	public Date getVigenciaHasta() {
		return vigenciaHasta;
	}

	public void setVigenciaHasta(Date vigenciaHasta) {
		this.vigenciaHasta = vigenciaHasta;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public ArrayList<Temporada> getTemporadas() {
		return temporadas;
	}

	public void setTemporadas(ArrayList<Temporada> temporadas) {
		this.temporadas = temporadas;
	}
	
	public TarifaDTO toDTO()
	{
		ArrayList<TemporadaDTO> temps = new ArrayList<TemporadaDTO>();
		for(Temporada temp : this.temporadas)
		{
			temps.add(temp.toDTO());
		}
		return new TarifaDTO(this.id, this.codigo, this.nombre, this.hotel.toDTO(), this.moneda, this.pension, this.activa, this.vigenciaDesde, this.vigenciaHasta, this.proveedor.toDTO(), temps);
	}
	
}
